package com.bestcem.xm.deliver.controller.v2.vo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Data
public class EmailDeliverWithMemberIdListVo {

    private String id;

    @JSONField(name = "created_id")
    private String createdId;


    @JSONField(name = "updated_id")
    private String updatedId;


    @JSONField(name = "version_id")
    private Integer versionId;

    private Boolean deleted;

    @JSONField(name = "created_dt", format = "yyyy/MM/dd HH:mm:ss")
    private LocalDateTime createdDt;

    @JSONField(name = "updated_dt", format = "yyyy/MM/dd HH:mm:ss")
    private LocalDateTime updatedDt;

    @JSONField(name = "org_id")
    private String orgId;

    @JSONField(name = "survey_id")
    private String surveyId;

    @JSONField(name = "deliver_id")
    private String deliverId;

    /**
     * 投放组ID
     */
    @JSONField(name = "deliver_group_id")
    private String deliverGroupId;

    /**
     * 上传名单投放的email
     */
    @JSONField(name = "email_list")
    private JSON emailList;

    /**
     * 发送邮件邮箱
     */
    @JSONField(name = "smtp_id")
    private String smtpId;

    /**
     * 发送人
     */
    @JSONField(name = "mail_from")
    private String mailFrom;

    /**
     * 邮件主题
     */
    @JSONField(name = "email_subject")
    private String emailSubject;

    /**
     * 邮件模板
     */
    @JSONField(name = "email_template")
    private String emailTemplate;

    /**
     * 邮件模板id
     */
    @JSONField(name = "email_template_id")
    private String emailTemplateId;

    /**
     * 限制提交次数
     */
    @JSONField(name = "check_submit")
    private Integer checkSubmit;

    /**
     * 唯一编号
     */
    @JSONField(name = "hashcode")
    private String hashcode;

    /**
     * 是否定时投放
     */
    @JSONField(name = "is_delay")
    private Integer isDelay;

    /**
     * 是否需要审核
     */
    @JSONField(name = "is_check")
    private Integer isCheck;

    /**
     * 投放时间
     */
    @JSONField(name = "deliver_time", format = "yyyy/MM/dd HH:mm:ss")
    private LocalDateTime deliverTime;

    /**
     * 防止打扰的时间列表
     */
    @JSONField(name = "anti_distur_times")
    private JSON antiDisturTimes;

    /**
     * 备用投放时间
     */
    @JSONField(name = "option_deliver_time")
    private JSON optionDeliverTime;

    /**
     * 投放联系人过滤规则
     */
    @JSONField(name = "filter_params")
    private JSON filterParams;

    /**
     * 免打扰联系人ID
     */
    @JSONField(name = "no_disturb_member_id_list")
    private JSON noDisturbMemberIdList;

    /**
     * 是否是上传名单投放
     */
    @JSONField(name = "is_upload")
    private Integer isUpload;

    /**
     * 上传名单是否同步至联系人
     */
    @JSONField(name = "is_sync_mem")
    private Integer isSyncMem;

    @JSONField(name = "member_id_list")
    private List<String> memberIdlist;
}